/* 
    nodejs 之所以能做后端，就是因为这个模块 http
        http--监听电脑中（服务器）中 某个端口的http请求（前端-浏览器-安卓iosAPP）
            ---这样的话，就表示我们的电脑就是一台服务器
            服务器：就是一台电脑，监听前端的请求，处理前端请求，、
                发布朋友圈，后端（后端代码-运行在服务器上）-会把数据存到服务器上

                前端的代码是运行在用户的手机上（浏览器）
*/

/* 
    下载模块（内置-不用下载）
    引入模块 
    使用模块

    1-  引入内置模块 
    2- 使用模块
        核心功能--创建服务器--监听电脑上某一个端口的http请求



*/
// 引入内置模块;
let http = require("http");
// 创建http服务器-监听电脑上某一个端口的http请求
// createServer-参数是一个回调函数（事件）
// 一旦有 前端请求，这个函数就会执行
// 这个回调函数又有两个形参
//一个是request-- 请求对象
//一个是response--响应对象
let server = http.createServer(function (request, response) {
  //前端请求的url--网址
  console.log(request.url);

  switch (request.url) {
    case "/ap/api/todos/create.php":
      {
        console.log("创建待办事项接口");
        response.writeHead(200, {
          "content-type": "application/json; charset=utf-8",
        });
        //响应体 中写入内容
        let obj = { code: "1", msg: "创建成功" };
        //   把后端想要返回的数据转为json字符串--返回给前端
        response.write(JSON.stringify(obj));
        response.end(); //结束回应
      }
      break;

    case "/ap/api/todos/readlist.php":
      {
        console.log("创建待办事项接口");
        response.writeHead(200, {
          "content-type": "application/json; charset=utf-8",
        });
        //响应体 中写入内容
        let obj = { code: "1", msg: "获取列表" };
        //   把后端想要返回的数据转为json字符串--返回给前端
        response.write(JSON.stringify(obj));
        response.end(); //结束回应
      }
      break;

    default:
      {
        response.writeHead(404, {
          "content-type": "application/json; charset=utf-8",
        });
        let obj = { code: "0", msg: "接口地址不存在 not found" };
        response.write(JSON.stringify(obj));
        response.end(); //结束回应
      }

      break;
  }
});
// 监听的端口号可以自己写
// hostname 主机名（服务器的地址-127.0.0.1）
server.listen(3000, "192.168.5.27", function () {
  console.log("开始监听 http://192.168.5.27:3000");
});
